/**
 * 仿写JSON内置API的parse方法
 * @param {String} javaData JSON数据格式
 * @returns Object
 */
function parse(javaData)
{
// let javaData = '{"errcode":0,"errmsg":"ok"}'

// 1 去掉【“ {} 空格】 => 'errcode:0,errmsg:ok'
let str = javaData.replace(/"|{|}|\s/g, '')
// 2 安装【,】分割 ['errcode:0','errmsg:ok']
let arr = str.split(',')
// 3 在遍历上面定义一个空函数
let obj = {}
// 4 遍历 item=’errcode：0‘
arr.forEach(item =>{
    // 5 遍历里面：按照【：】分割
    let temp = item.split(':') 
    // 6 遍历里面：数组的第一个值就是键，数组的第二个值就是值
    obj[temp[0]] = isNaN(Number(temp[1])) ? temp[1] : Number(temp[1])
})
    return obj 
}

/**
* 仿写JSON内置API的stringify方法
* @param {Object} obj 标准普通对象
* @returns String
*/

function stringify(obj) {
    // 1 定义空数组
    let arr = []
    // 2 遍历对象，将【键，值】push到数组中
    for (let key in obj) {
        let val = obj[key]
        if (!['boolean','number'].includes(typeof val)) {
            val = `"${obj[key]}"`
        }
        arr.push(`"${key}":${val}`)
    }
    // 3 拼接成json数据格式 
    return `{${arr.join(',')}}`
}
